package day1;

import java.util.Scanner;

import org.junit.Test;

public class day1Work {
	
	@Test
	//打三角形
	public void test6() {

		for (int i = 1; i <= 5; i++) {// 控制行数

			for (int s = 5; s > i; s--) {
				System.out.print("x");
			}
			for (double j = 0; j < i; j = j + 0.5) {
				System.out.print("*");
			}
			System.out.println();
		}
	}

	
	@Test
	//打三角形
	public void test1() {
		// 行数 = 最后一个数字也是每行的 数字个数
		// 每层是奇数个
		for (int i = 1; i <= 5; i++) {// 控制行数
			for (int j = 1; j <= 5 - i; j++) {
				// 空格
				System.out.print(" ");
			}

			for (int j = 1; j <= i; j++) {// 每行数字
				System.out.print("*");
			}
			for (int j = i - 1; j >= 1; j--) {
				System.out.print("*");

			}
			System.out.println();

		}

	}

	
	@Test
	//打三角形
	public void test2_1() {
		int n = 5;
		for (int i = 1; i <= n; i++) {
			for (int m = n; m > i; m--) {// 毋庸置疑，打印空格，倒三角
				System.out.print(" ");
			}
			for (int k = 0; k < 2 * i - 1; k++) {// k为打印的个数，i = 1，k = 1;i = 2,k = 3
				if (k == 2 * i - 2) { // 位置，i = 1.k = 0; i = 2,k = 2; i = 3,k = 4
					System.out.println("*");
				} else {
					System.out.print("*");
				}
			}
		}
		
	}
	
	
	
	@Test
	//打三角形
	public void test16() {
		// 行数 = 最后一个数字也是每行的 数字个数
		for (int i = 1; i <= 5; i++) {// 控制行数,循环次数为行数
			for (int m = 5; m > i; m--) {// 毋庸置疑，打印空格，倒三角，用以填充使五层星号方向反向
				System.out.print(" ");
			}
			for (int j = 1; j <= i; j++) {//五层星号的打印，j<=i表示打印的个数 = 每行的行数
				System.out.print("*");
			}
			for (int j = 1; j <= i - 1; j++) {//小的五层星号，j<= i - 1 意为从第二行开始打印
				System.out.print("*");
			}
			System.out.println();//打印完一行就换行
		}
	}

	@Test
	//判断质数
	public void test2() {
		// 外层循环，遍历100-200之间的数
		for (int i = 100; i <= 200; i++) {
			int j;
			if(i % 2 == 0 && i != 2  )
				continue;
			for (j = 3; j < i; j+=2) {
				if (i % j == 0) {
					break;
				}
				
			}
			if (i == j) {
				System.out.println(i + "是质数");
			}
			
			
		}
		char ch ;
		ch = 1;
		System.out.println(ch);
		
	}
	
	

	//寻找200-100的质数
	@Test
	public void test2_2(){

		for (int i = 100; i <= 200; i++) {
			boolean x = true;
			for (int j = 2; j < i; j++) {
				if (i % j == 0) {
					x = false;
					break;
				}
				
			}
			if (x == true) {
				System.out.println(i+"是素数");
			}
		}
	}


	@Test
	// 输入字符判断个数
	public void test3() {
		char[] ch = null;
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入字符：");
		String result = scanner.nextLine();
		ch = result.toCharArray();
		int[] array = new int[4];
		
		for (int i = 0; i <= ch.length - 1; i++) {
			if (ch[i] >= '0' && ch[i] <= '9') {
				array[0]++;
			} else if ((ch[i] >= 'A' && ch[i] <= 'Z') || ((ch[i] >= 'a') && (ch[i] <= 'z'))) {
				array[1]++;
			} else if (ch[i] == ' ') {
				array[2]++;
			} else {
				array[3]++;
			}
		}

		System.out.println("数字有" + array[0]);
		System.out.println("字母有" + array[1]);
		System.out.println("空格有" + array[2]);
		System.out.println("其他有" + array[3]);
	}

	@Test
	public void test8() {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入一个字符串");
		String str = scanner.next();
		char[] array = str.toCharArray();
		//是回文，需要全部遍历完才知道
		//不是回文，只需要找出一个反例
		//i + x = array.length -1	x = array.length - 1 - i
		//初始是回文
		boolean isHuiWen = true;
		for (int i = 0; i < array.length / 2; i++) {
			if (array[i] != array[array.length-1-i]) {
				//找出了反例，不是回文，直接退出
				isHuiWen = false;
				break;				
			}
		}
		//遍历完也没有找出一个反例，证明就是回文
		if (isHuiWen == true ) {
			System.out.println("是回文");
		}else {
			System.out.println("不是回文");
		}
	}
	
	// 随意输入一串数字确定是否为回文
	@Test
	public void test5() {
		Scanner scanner = new Scanner(System.in);
		char[] array = null;
		System.out.println("请输入一个数字:");
		String result = scanner.nextLine();//定义result接收字符串，用nextLine
		array = result.toCharArray();//用toCharArray()方法将result转换为字符数组
		
		int j = 0;
		for (int i = 0; i <= array.length - 1; i++) {

			if ((array[i] == array[array.length - (i + 1)])) {
				if (i == array.length / 2) {
					break;
				}

				j++;
			}
		}
		if (j == array.length / 2) {
			System.out.println("这个数是回文");
		} else {
			System.out.println("这个数不是回文");
		}

	}

	
	@Test
	//最大值最小值
	public void test7() {
		int[] arr = { 23, -2, -4, 100, 56, 78, 99, 22, 67, 0  };
		int max = arr[0], 
			min = arr[0];

		for (int i = 1; i <= arr.length - 1; i++) {

			if (arr[i] > max) {
				max = arr[i];
			}
			if (arr[i] < min) {
				min = arr[i];
				// System.out.println("每次min的值"+min);
			}
		}
		System.out.println("最小值为" + min);
		System.out.println("最大值为" + max);
	}
	
	

}
